package org.example.product.dao;


import org.apache.ibatis.annotations.Param;
import org.example.product.entity.SkuInfoEntity;
import org.example.product.to.cart.SkuInfoTo;
import org.example.product.vo.SkuSaleAttributeVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Set;

/**
 * @author 小杰_cc
 * @version 1.0
 */
public interface SkuInfoDao{

    // 保存sku信息
    int addSkuInfo(SkuInfoEntity skuInfo);

    // 查询sku信息集合
    List<SkuInfoEntity> getSkuInfoList(@Param("skuTitle") String skuTitle, @Param("categoryId") Long categoryId, @Param("brandId") Long brandId, @Param("priceMax") BigDecimal priceMax, @Param("priceMin") BigDecimal priceMin);
    // 根据spuId查询sku集合
    List<SkuInfoEntity> getSkuInfoBySpuId(@Param("spuId") Long spuId);
    // 根据skuId获取信息
    SkuInfoEntity getSkuInfoBySkuId(@Param("skuId") Long skuId);
    // 根据spuId查询所有的销售属性
    List<SkuSaleAttributeVo> getSaleAttributeValue(@Param("spuId") Long spuId);

    // 查看购物车时所需要的数据
    List<SkuInfoTo> getSkuInfoCartBySkuIds(@Param("skuIds") List<Long> skuIds);

    // 查询spuIds
    Set<Long> getSpuIdListByIds(@Param("skuIds") List<Long> skuIds);

}
